Distributed applications work together to complete a task. Transaction managers associated with each of the applications communicate propagation information to each other to coordinate completion of the task. The transaction managers may have several transaction protocols available to use for communication with each of the transaction protocols possibly requiring different propagation information. In existing systems, there is a lack of interoperability between these protocols. As such, the existing systems are neither extensible nor dynamic.
Further, in existing systems, the decision as to what propagation information to carry between the applications is typically made before the applications become aware of the existence of the other applications that will help complete the task. Consequently, the choice of transaction protocol in existing systems is made too early or in an uninformed fashion without taking into account specific aspects of protocol versioning and support, topological circumstances, or other characteristics that might influence the choice of protocol.
Some existing systems have propagation information formats that explicitly support several potential transaction protocols. In such existing systems, transaction managers implement particular protocols for communication between the transaction managers by hardcoding support for the particular protocols into the transaction managers.
These existing approaches suffer in several ways. For example, the propagation information format must be revised whenever support for a new transaction protocol is added to a transaction manager. In another example, there are many protocols, including de-facto and de-jure standards, that do not support this feature. In particular, a transaction manager that supports a standard protocol also supports a high performance and more feature rich advanced protocol. Existing transaction managers fail to provide propagation information that allows interaction with both transaction managers that support the standard protocol and transaction managers that support an advanced protocol. In particular, the propagation information in existing systems lacks information enabling a transaction manager that supports an advanced protocol to negotiate up to the advanced protocol when the transaction manager finds itself communicating with another transaction manager that also supports the advanced protocol.